#pragma once

template <class T>
class Matriz;

#include "Array.h"
#include "Iterador.h"

template <class T>
class MatrizIterador : public Iterador<const Array<T>>
{
public:
	MatrizIterador(const Matriz<T>& iterable);
	virtual ~MatrizIterador(){}

	virtual void Reiniciar();
	virtual bool HayElemento() const;
	virtual const Array<T>& ElementoActual() const;
	virtual void Avanzar();

private:
	Matriz<T> iterable;
	nat posicion;
};

#include "MatrizIterador.cpp"
